Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজের জন্য FileFilter ক্লাস সরবরাহ করে, যা আপনাকে ফাইল ফিল্টার করার জন্য সহজ এবং কার্যকরী উপায় প্রদান করে। FileFilter এর মাধ্যমে আপনি নির্দিষ্ট ফাইলগুলিকে ফিল্টার করতে পারেন যেমন এক্সটেনশন বা নামের উপর ভিত্তি করে। এটি ফাইল সিস্টেমে দ্রুত এবং কার্যকরীভাবে ফাইল নির্বাচন বা ফিল্টার করার জন্য ব্যবহার করা যায়।
FileFilter একটি interface যা accept()
মেথডে ফাইলের জন্য শর্ত বা প্রেডিকেট ব্যবহার করে। আপনি নিজের কাস্টম শর্ত অনুসারে ফাইল ফিল্টার করতে পারেন।
FileFilter সাধারণত FileUtils
বা File
ক্লাসের সাথে ব্যবহৃত হয় এবং নির্দিষ্ট শর্তে ফাইল নির্বাচন বা ফিল্টার করার জন্য এটি সহজ উপায় সরবরাহ করে।
accept()
মেথডকে কাস্টম শর্ত অনুসারে পরিচালনা করবে।listFiles()
মেথডে FileFilter ব্যবহার করে ফাইল ফিল্টার করা সম্ভব।এখানে একটি উদাহরণ দেওয়া হল, যেখানে FileFilter ব্যবহার করে ফাইলের এক্সটেনশন .txt
অনুযায়ী ফিল্টার করা হয়েছে:
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
import java.io.File;
import java.io.IOException;
public class FileFilterExample {
public static void main(String[] args) {
// ডিরেক্টরি যেখানে ফাইল ফিল্টার করা হবে
File directory = new File("C:/exampleDirectory");
// FileFilter তৈরি করুন যা .txt এক্সটেনশন সহ ফাইল ফিল্টার করবে
FileFilter fileFilter = FileFilterUtils.suffixFileFilter(".txt");
// FileUtils এর মাধ্যমে ফাইল ফিল্টার করা
File[] filteredFiles = directory.listFiles((FileFilter) fileFilter);
// ফিল্টার করা ফাইলগুলোর নাম প্রিন্ট করা
if (filteredFiles != null) {
for (File file : filteredFiles) {
System.out.println(file.getName());
}
} else {
System.out.println("কোনো .txt ফাইল পাওয়া যায়নি।");
}
}
}
FileFilterUtils.suffixFileFilter(".txt")
: এই মেথডটি একটি ফাইল ফিল্টার তৈরি করে যা .txt
এক্সটেনশনযুক্ত ফাইলগুলিকে ফিল্টার করবে।listFiles()
মেথডের মাধ্যমে নির্দিষ্ট ডিরেক্টরির মধ্যে ফাইল ফিল্টার করা হচ্ছে।filteredFiles
অ্যারে তে শুধু .txt
ফাইল গুলি থাকবে যেগুলি ফিল্টার করা হয়েছে।file1.txt
file2.txt
আপনি আরও কাস্টম ফিল্টারিং শর্ত প্রয়োগ করতে পারেন যেমন ফাইলের আকার, নামের সাথে regex ম্যাচ, বা নির্দিষ্ট ফাইলের অন্তর্ভুক্তি বা অনুপস্থিতি।
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NameFileFilter;
import java.io.File;
import java.io.IOException;
public class CustomFileFilterExample {
public static void main(String[] args) {
// ডিরেক্টরি যেখানে ফাইল ফিল্টার করা হবে
File directory = new File("C:/exampleDirectory");
// কাস্টম ফাইল ফিল্টার তৈরি (নাম অনুযায়ী ফিল্টার)
IOFileFilter fileFilter = new NameFileFilter("example");
// FileUtils এর মাধ্যমে কাস্টম ফিল্টার প্রয়োগ করা
File[] filteredFiles = directory.listFiles((IOFileFilter) fileFilter);
// ফিল্টার করা ফাইলগুলোর নাম প্রিন্ট করা
if (filteredFiles != null) {
for (File file : filteredFiles) {
System.out.println(file.getName());
}
} else {
System.out.println("কোনো ফাইল পাওয়া যায়নি।");
}
}
}
NameFileFilter
ফাইল নামের সাথে নির্দিষ্ট টেক্সট মেলা (matching) করতে ব্যবহৃত হয়। এখানে "example" শব্দ দিয়ে ফিল্টার করা হচ্ছে, যাতে শুধুমাত্র "example" নামের ফাইলগুলি ফিল্টার হবে।exampleFile1.txt
exampleImage.jpg
.txt
, .jpg
, ইত্যাদি।Apache Commons IO এর FileFilter ক্লাসটি আপনাকে ফাইল ফিল্টারিংয়ের জন্য শক্তিশালী এবং নমনীয় পদ্ধতি প্রদান করে। আপনি FileFilterUtils ব্যবহার করে সহজেই এক্সটেনশন, নাম, সাইজ বা অন্যান্য শর্তে ফাইল ফিল্টার করতে পারেন। Apache Commons IO লাইব্রেরির এই ফিচারগুলি ফাইল সিস্টেমের সাথে কাজ করার সময় ডেভেলপারদের জন্য অনেক সহায়ক।
common.read_more